博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ssm框架restful风格实现增删改查
阅读量:6306 次
发布时间:2019-06-22

本文共 4164 字,大约阅读时间需要 13 分钟。

1、什么是restful风格

大家在做Web开发的过程中,method常用的值是get和post. 可事实上,method值还可以是put和delete等等其他值。

既然method值如此丰富,那么就可以考虑使用同一个url,但是约定不同的method来实施不同的业务,这就是Restful的基本考虑。

2、restful风格独特之处

2.1 url的不同

  • 非restful风格:http://.../queryItems.action?id=001&type=T01
  • restful风格:http://..../items/001

2.2 请求方法的不同

学习javaweb的时候,我们只知道了get和post两种请求方法,当restful却不止这两种

  • 获取数据:GET请求
  • 增加数据:POST请求
  • 修改数据:PUT请求
  • 删除数据:DELETE请求

3、ssm实现restful风格增删改查

3.1 配置HiddenHttpMethodFilter过滤器

浏览器form表单只支持get和post请求,而delete和put请求并不支持。HiddenHttpMethodFilter是spring中自带的一个过滤器,可以将浏览器表单请求转换为标准的http请求,使它们支持get、post、delete、put请求。

HiddenHttpMethodFilter
org.springframework.web.filter.HiddenHttpMethodFilter
HiddenHttpMethodFilter
/*

3.2 在jsp中如何指定form表单的请求方式

在表单中加入隐藏域,name属性一定要为 ”_method“,这样刚才配的HiddenHttpMethodFilter拦截器才能够识别,value属性就是我们需要的请求方式。这样springmvc就会帮我们做

3.3 restful参数传递

在获取一条数据时或删除一条数据时,一般情况下前端要向后端传入一个id值,restful风格的参数传递与之前讲的注解@RequestMapping()注解映射请求中的URI模板一样,将参数作为变量放在URL中。

示例:
前端传入id值为10000,id为以参数变量

前端浏览器URL:http://www.example.com/users/10000

@RequestMapping()注解:@RequestMapping("/users/{id}")
方法中接收id:public String getOneUser(@PathVariable("id") int id){}

3.4增删改查实例

controller:

@Controllerpublic class UserController {    @Resource(name="userService")    UserService userService;        /*     * 查询所有用户     */    @RequestMapping(value="/users",method=RequestMethod.GET)    public String index(Model model) {        List
users = userService.getAllUser(); model.addAttribute("users", users); return "users"; } /* * 转发到添加用户的视图 */ @RequestMapping("/addUserView") public String addUserView() { return "add"; } /* * 添加用户 */ @RequestMapping(value="/addUser",method=RequestMethod.POST) public String addUser(User user) { userService.addUser(user); return "redirect:/users"; } /* * 获取所要修改用户的信息 */ @RequestMapping(value="/user/{id}",method=RequestMethod.GET) public String updateUserView(@PathVariable("id") Integer id,Model model) { User user = userService.getOneUserById(id); model.addAttribute("user",user); return "updateUserView"; } /* * 修改用户信息 */ @RequestMapping(value="/user",method=RequestMethod.PUT) public String updateUser(User user) { userService.updateUser(user); return "redirect:/users"; } /* * 删除用户 */ @RequestMapping(value="/user/{id}",method=RequestMethod.DELETE) public String deleteUser(@PathVariable("id") Integer id) { userService.deleteUser(id); return "redirect:/users"; } }

jsp:

users.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
获取全部用户信息
编号 用户名 密码 操作
${user.id } ${user.username } ${user.password } 修改
添加员工

add.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
Insert title here
用户名:
密 码:

updateUserView.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
Insert title here
编号
用户名
密码

转载于:https://www.cnblogs.com/hamawep789/p/10896030.html

你可能感兴趣的文章
动画easelJS.js用于动画,向量和位图的绘制?
查看>>
数据结构-队列与栈之间的转换
查看>>
APP开发:一个APP开发需要哪些技术人员?
查看>>
4.1 装饰器详解
查看>>
Java socket示例(demo)TCP/IP
查看>>
kafka server.properties配置文件详解
查看>>
scrapy爬虫学习系列三:scrapy部署到scrapyhub上
查看>>
Mybatis 子查询
查看>>
centos 和 radhat 配置epel仓库
查看>>
jsp页面制作弹出框
查看>>
Django--ORM操作
查看>>
2018.10.29安装tensorflow
查看>>
input chrome下输入之后背景变为黄色的解决办法
查看>>
MySQL数据库的安装教程及相关问题
查看>>
MHDD检测电脑硬盘坏道
查看>>
PHP变量在内存中的存储方式
查看>>
Jupyter Notebook中让python2和python3内核共存
查看>>
pandas.read_csv() 报错 OSError: Initializing from file failed,报错原因分析和解决方法
查看>>
用例图简介(转)
查看>>
算法思想(一)理解复杂度
查看>>